package com.chengcang.admin.modules.sys.service;

import com.chengcang.admin.modules.security.user.UserDetail;
import com.chengcang.admin.modules.sys.dto.SysMinTenantDTO;
import com.chengcang.admin.modules.sys.dto.SysTenantDTO;
import com.chengcang.admin.modules.sys.dto.SysUserTenantDTO;
import com.chengcang.admin.modules.sys.entity.SysTenantEntity;
import com.chengcang.common.service.CrudService;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 客户管理
 *
 * @author zhanli
 * @since 1.0.0 2023-01-05
 */
public interface SysTenantService extends CrudService<SysTenantEntity, SysTenantDTO> {

    /**
     * 保存or更新客户信息
     * @param dto
     */
    void saveOrUpdate(SysTenantDTO dto);

    /**
     * 客户列表
     * @return
     */
    List<SysMinTenantDTO> tenantList(SysMinTenantDTO dto);

    /**
     * 客户列表
     * @return
     */
    Integer forbidTenant(Long id,Integer deleted);
    /**
     * 详情
     * @param id
     * @return
     */
    SysTenantDTO getDetail(Long id);

    /**
     * 删除校验，存在发布需求，未完成订单不允许删除
     * @param ids
     */
    void deleteValidate(Long[] ids);

    /**
     * 切换当前用户的客户
     * @param userDetail
     * @param tenantId
     */
    void switchTenant(UserDetail userDetail, Long tenantId);
}